package cn.tedu.inherit;
/**本类是【继承的入门案例】
 * 父类与子类
 * 父类：animal
 * 子类：Cat
 * 孙子类：MiaoMaio
 * */
public class TestExetends {
    public static void main(String[] args) {
            //1.调用父类的方法。需创建对象
              Cat c = new Cat();//Cat类对象
              c.eat();

              MiaoMiao m = new MiaoMiao();//MiaoMiao类对象
              m.print();
              m.eat();
    }
}


//1.创建父类----爷爷辈
class Animal{
    //定义普通方法
    public  void eat(){
        System.out.println("动物啥都吃");
    }

}
//2.创建Animal类的子类Cat--爸爸
/**1.子类与父类是继承关系,用关键字extends来表示/连接*/
/**2.java只支持单继承,一个子类只能有一个父类,但是一个父类可以有多个子类*/
class Cat extends Animal{//继承类，没有小括号，小括号表示方法
       //定义属性
        int a = 10;//符类非私有
        private int b = 100;//父类私有
}

//3.创建Cat类的子类MiaoMiao--孙子
/**1.继承具有传递性,爷爷的功能会传给爸爸,爸爸的功能会传给孙子*/
/**2.继承是is a的关系,要求子类必须是父类的一种继承结构,依赖性非常强,强耦合*/
class MiaoMiao extends Cat{
    //8.在孙类中创建自己[独有的普通方法]
    public void print() {
        /**3.子类继承父类以后,相当于把父类的功能进行了复制*/
        System.out.println(a);//子类可以打印父类的非私有属性a
        /**4.父类的私有资源,子类不可继承*/
        //System.out.println(b);//子类不可以打印父类的私有属性值b
    }
}
